import {reqGetSearchInfo} from '@/api';

//search模块的小仓库
const state = {
    //仓库初始状态
    searchList:{}
};
const mutations = {
    //修改search数据
    GETSEARCHLIST(state, searchList){
        state.searchList = searchList;
    }
};
const actions = {
    //获取search模块数据
    async getSearchList({ commit }, params = {}) {
      //当前这个 reqGetSearchchInfo 这个函数在调用获取服务器数据的时候，至少传递一个参数（空对象）
      //params形参：是当用户派发action的时候，第二个参数传递过来的，至少是一个空对象
      let result = await reqGetSearchInfo(params);
      if (result.code == 200) {
        commit("GETSEARCHLIST", result.data);
      } 
      //console.log(result)
    },
};

//计算属性
//项目当闹钟 getters 主要作用是：简化仓库中的数据（简化数据而生）
//可以吧我们将来在组件当中需要用的数据简化一下【将来组件在获取数据的时候就方便了】
const getters = {
    //当前形参 state 是当仓库中的state，并非大仓库中的那个state
    goodsList(state){
        //state.searchList.goodsList 如果服务器数据回来了，没问题是一个数组
        // 假如网络不给力或没有网 state.searchList.goodsList 应该返回的是 undefined
        //计算新的属性值至少给人家一个数组
        return state.searchList.goodsList || [];
    },
    attrsList(state){
        return state.searchList.attrsList;
    },
    trademarkList(state){
        return state.searchList.trademarkList;
    }

};
export default {
    state,
    mutations,
    actions,
    getters
}